package collection;

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;


/**
 * List集合
 * 有序可重复
 * 提供了一套通过下表访问元素的方法
 */
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        System.out.println(list);

        /*
        E get(int index) 获取指定下标的元素
        是list独有的一个方法
         */
        System.out.println(list.get(1));

        // 遍历list集合
        for(int i =0 ;i<list.size();i++){
            System.out.println(list.get(i));
        }
        /*
        E set(int index,E element)
        替换指定下标的元素
         */
        String old = list.set(3,"b"); // 得到的是该下表的元素
        System.out.println(list);
        System.out.println(old);

        /*
        利用get,set方法取翻转集合
         */
        List list1 = new ArrayList();
        list1.add("one");
        list1.add("two");
        list1.add("three");
        list1.add("four");
        list1.add("five");
        System.out.println(list1);
        // 翻转
        for(int i =0;i<list1.size()/2;i++){
//            // 找到第一个
//            String old1 = (String)list1.get(i);
//
//            // 找到最后一个
//            String old2 = (String)list1.get(list1.size()-1-i);
//
//            // 将第i个替换为找到的第size()-i-1个
//            list1.set(i,old2);
//            // 将size()-1-i替换为找到的第i个
//            list1.set(list1.size()-1-i,old1);

            // 超简写,不需要数据类型强制转换，但是可读性不高
            list1.set(i,list1.set(list1.size()-1-i,list1.get(i)));

        }
        System.out.println(list1);

        // 使用java当中自带的反转
        Collections.reverse(list1);
        System.out.println(list1);
    }


}
